/**
 * Description:
 * Class Name:DiscernVariable
 * Date:2022/2/9 12:16
 *
 * @author LTisme
 * @version JAVA17
 */
package 疯狂Java讲义.第6章_面向对象_下._6_7_内部类.非静态内部类;

class Hh{
    String prop = "父类的实例成员变量";
}

public class DiscernVariable extends Hh {
    private String prop = "外部类的实例变量";
    private class InClass{
        private String prop = "内部类的实例变量";
        public void info(){
            var prop = "局部变量";
            // 父类变量可以用super——注意，this和super关键字是不可以在静态方法中使用的！
            System.out.println(DiscernVariable.super.prop);
            // 通过外部类类名.this.varName 访问外部类实例变量
            System.out.println("外部类的实例变量值：" + DiscernVariable.this.prop);
            // 通过this.varName 访问内部类实例变量
            System.out.println("内部类的实例变量值：" + this.prop);
            // 直接访问局部变量
            System.out.println("局部变量的值：" + prop);
        }
    }
    public void test(){
        var in = new InClass();
        in.info();
    }
    public static void main(String[] args) {
        new DiscernVariable().test();
    }
}
